#include "gpio.h"

void MX_GPIO_Init(void)
{

  GPIO_InitTypeDef GPIO_InitStruct = {0};

  /*TFT GPIO 配置*/
  __HAL_RCC_GPIOA_CLK_ENABLE();
  HAL_GPIO_WritePin(GPIOA, TFT_CS_Pin|TFT_DC_Pin|TFT_RES_Pin|TFT_CSK_Pin, GPIO_PIN_SET); /*初始化TFT PIN状态*/
  GPIO_InitStruct.Pin = TFT_CS_Pin|TFT_DC_Pin|TFT_RES_Pin|TFT_CSK_Pin;
  GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
  GPIO_InitStruct.Pull = GPIO_NOPULL;
  GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
  HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);

  /*KEY GPIO 配置*/
  __HAL_RCC_GPIOB_CLK_ENABLE();
  GPIO_InitStruct.Pin =    KEY1_GPIO_Pin|KEY2_GPIO_Pin|KEY0_GPIO_Pin;
  GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
  GPIO_InitStruct.Pull = GPIO_PULLUP;
  GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
  HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
  
  /*LED GPIO 配置*/
  __HAL_RCC_GPIOC_CLK_ENABLE();
  HAL_GPIO_WritePin(LED_GPIO_Port, LED_GPIO_Pin, GPIO_PIN_RESET);
  GPIO_InitStruct.Pin =  LED_GPIO_Pin;
  GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
  GPIO_InitStruct.Pull = GPIO_NOPULL;
  GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
  HAL_GPIO_Init(LED_GPIO_Port, &GPIO_InitStruct);

  /*BATTERY GPIO 配置*/
  __HAL_RCC_GPIOA_CLK_ENABLE();
  HAL_GPIO_WritePin(BATTERY_CHG_Port, BATTERY_CHG_GPIO_Pin, GPIO_PIN_SET);
  GPIO_InitStruct.Pin =  BATTERY_CHG_GPIO_Pin;
  GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
  GPIO_InitStruct.Pull = GPIO_NOPULL;
  GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
  HAL_GPIO_Init(BATTERY_CHG_Port, &GPIO_InitStruct);
}
